Current computing applications are largely single user systems. For example, conventional editing applications allow a single user to open a file and make modifications to the content. If while the file is open by a first user, a second user attempts to open the file, the second user will be prevented from opening or modifying the file. The second user is sometimes permitted to obtain a snapshot copy of the file.
The snapshot copy, however, is not updated with any of the subsequent modifications made to the original copy made by the first user. Thus, the second user is unable to share in the first user's ideas manifested as file modifications. Moreover, the second user is prevented from modifying the content of the original file and, thus, is prevented from sharing his or her ideas manifested as file modifications. In short, the first and second users are unable to collaboratively edit the file.
Collaboration, as the term is used herein, implies an ability for multiple clients to share ideas. This sharing includes the ability to automatically express one's ideas to the other members without having to have the other members explicitly solicit the ideas. Collaboration also includes the ability for each member to automatically receive any ideas from members who are transmitting ideas. Thus, at a minimum, collaboration implies communication among members that are party to the collaborative effort. This communication/collaboration may follow many models. A “brain-storming” session is an unrestrained model of collaboration. On the other hand, a “round-robin” model, in which each member has a specified turn to express ideas, is a constrained model of collaboration.
In one collaboration system disclosed in U.S. Pat. No. 5,781,732, data change requests are generated in response to user interactions and are sent to a transponder unit which is connected to all collaborators. The transponder broadcasts the data change requests to all users participating in a collaboration. Each user has a local copy of the collaborative data and a mechanism that receives the data change requests and makes the requested changes to the local data copy. Since all data change requests must pass through the transponder, all data change requests are received by each collaborator in the same order and, thus, data consistency is maintained.
Collaboration may occur locally among users operating with one computer or server or may occur over a network wherein each of the users is located at a computer connected to the network. The Internet is one such network that has established a dynamic, public environment for communication and interaction among its millions of users. In business, the Internet, and particularly the World Wide Web application operating on the Internet, has redefined vendor-manufacturer, manufacturer-distributor, distributor-customer, and other relationships. With extension of the Internet technology into internal, secured networks of individual companies, the “intranet” or “private Internet”, as it is called, has enabled new forms of document and information sharing between individual employees and work groups using company directory and network infrastructure.
The World Wide Web (The “Web”) has, at its core, a server-client architecture, in which individual clients (i.e., Web-content users) interface via browsers with servers (i.e., Internet-content providers) over a public network to obtain documents from Web sites. Browsers are software programs that enable personal computers to request, receive (e.g., download), interpret, and present Internet documents, and generally navigate the Internet. Web sites are collections of documents, usually consisting of a home page and related, linked documents, located on servers remote from the client. The documents can be compound documents, containing data, graphics, video, sound, and/or other types of media, as well as links to other documents.
Underlying the Web and other Internet technologies are advances in standardization, including personal computer hardware, software, network protocols, and infrastructural conventions (such as the “Uniform Resource Locator” or “URL”). URLs provide location addresses for all document objects on the WWW. A URL uniquely references a document object and often defines an access algorithm using Internet protocols.
To take advantage of the Internet tools and resources have been developed in compliance with the Internet protocols, including applications such as e-mail. E-mail is electronic mail, by means of which documents are sent and received electronically at selected addresses. It has been estimated that a vast majority of Internet-based interaction is with e-mail and other browser-based media that follow a “document send and receive” model. Perhaps due to that model, users often view the Internet as inherently “peer-to-peer”, with individuals accessing documents provided by other individuals, without intervention by a higher authority.
Consequently, new collaboration models have been developed which operate in a more “peer-to-peer” fashion. These latter models are built upon direct connections between users in shared private spaces, called “telespaces”. Each user has a program called an “activity”, which is operable in his or her personal computer system, communication appliance or other network-capable device. The activity program responds to user interactions by generating data change requests, called “deltas.” The activity also has a data-change engine that maintains a local data copy and performs the changes to the data requested by the deltas. The deltas are distributed from one user to another by a dynamics manager. The latter type of collaboration system is described in detail in U.S. patent application Ser. No. 09/357,007 entitled METHOD AND APPARATUS FOR ACTIVITY-BASED COLLABORATION BY A COMPUTER SYSTEM EQUIPPED WITH A COMMUNICATIONS MANAGER, filed Jul. 19, 1999 by Raymond E. Ozzie, Kenneth G. Moore, Robert H. Myhill and Brian M. Lambert; U.S. patent application Ser. No. 09/356,930 entitled METHOD AND APPARATUS FOR ACTIVITY-BASED COLLABORATION BY A COMPUTER SYSTEM EQUIPPED WITH A DYNAMICS MANAGER, filed Jul. 19, 1999 by Raymond E. Ozzie and Jack E. Ozzie and U.S. patent application Ser. No. 09/356,148 entitled METHOD AND APPARATUS FOR PRIORITIZING DATA CHANGE REQUESTS AND MAINTAINING DATA CONSISTENCY IN A DISTRIBUTED COMPUTER SYSTEM EQUIPPED FOR ACTIVITY-BASED COLLABORATION, filed Jul. 19, 1999 by Raymond E. Ozzie and Jack E. Ozzie.
The Internet is dynamic and flexible in providing users with entertaining and useful ways of communicating, but it does not meet all the needs of users. For example, the Internet would seem to be ideally suited for collaboration because it has the ability to connect widespread users with diverse hardware and software. However, the security of the Internet leaves much to be desired. While messages can be sent to various numbers of users over the Internet, those messages are typically funneled to third-party Web sites where communications can be intercepted and confidences violated. Consequently, while users interact increasingly through the Internet, they continue to interact off of the Internet in more conventional, secure ways, such as through multi-medium (phone, fax, whiteboard), multi-temporal (real-time, overnight mail) and other informal means of communication.
It would be desirable to extend the Internet to secure collaborative communications and other shared and mutual activities between individuals and small groups in shared private spaces. Such interactions should preferebly occur instantly, directly and confidentially between participants' personal computers, or other network capable devices. It would also be desirable to provide a technique that allows users at various remote sites to securely communicate without requiring extensive involvement of the users in the establishing a secure communication link and maintaining the security system. It is also desirable to reduce the “overhead” involved in providing secure transactions to a minimum in order to increase throughput and speed of operation.